iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0

由於筆者本身大多數的開發經驗都是在 RESTful API 的範疇,所以今天主要想分享 @RestController 註解的使用方式。日後有機會再來介紹 @Controller 註解在傳統Web應用中的使用方式。

@RestController 常常搭配其他Bean一起使用,例如 @RequestMapping 註解,它是一個可以使用在類別(Class)或類別內其他方法(Function)上的註解。如果將此註解用在類別上, 它會將特定的請求映射到該Controller內,之後也可以在其他方法上添加該註解, 用來進一步指定到處理該請求的方法內。

同時於Class和Function使用 @RequestMapping 的範例如下:

@RestController
@RequestMapping("/Controller")
public class SpringController {

		@RequestMapping(value = "/Hello")
		@RequestBody
		public String exampleController() {
		
				String str = "Hello Word !";
				
			  return "Get Response = " + str
		}
}

@RequestMapping 中包含了許多屬性,除了設定指定請求的路徑(value屬性)外,還有其他屬性可以指定,透過這些屬性的組合和設定,讓符合條件的訪問才能夠執行。

以下為 @RequestMapping 中可以設定的屬性:

1.value: 定義發起請求的實際地址

2.params: 定義發起的請求中必須 包含 哪些參數 或是不包含 哪些參數

3.method: 在發起request時就會指定該請求的方法為何,在method屬性設定請求的類型,可以用於限制請求的方式。如果沒有設定method屬性,表示此mapping接受所有請求的方法。 method屬性包括了GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等類型,而GET、POST則是在開發中較常被使用方法類型。

4.consumes: 對應到Http Request Header的Content-Type,可以限制接受請求內容的類型,例如application/json, application/text, application//html等。

5.produces: 對應到Http Request Header的Accept,指定回傳内容的類型。當請求Header中的(Accept)包含該指定類型才會返回,也代表cilent端能夠接收的類型。

@RequestMapping 是一個通用的註解,表示它可以接受/處理各種類型的請求,而像是 @GetMapping@PostMapping 等註解就是專門用來處理特定類型的請求。


上一篇
Day10 - Controller下的Bean (上)
下一篇
Day12 - Controller下的Bean (下)
系列文
這些年SpringBoot實戰開發教會我的事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言